package com.ww.springboot.boot.thread.threadlocal;

import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;

/**
 *
 * 神奇的HASH_INCREMENT(特殊) 每次累加HASH_INCREMENT 哈希出来的数就十分均匀了  每个值之间 差为7
 *
 * 使用场景-》怎么将一群无规则的数 均匀分布   使用数字自增好像也可以解决这个问题？？？？ 数字自增解决不了扩容后重新散列平均分配的需求
 *
 * ThreadLocal 扩容因子 0.75
 *
 * @author wanwei
 * @since 2021-04-06 18:18
 */
public class ThreadLocalDemo2 {

    private static final ThreadLocal<Map<String, String>> local = new ThreadLocal<>();
    private static int n = 0;

    private static final int HASH_INCREMENT = 0x61c88647;

    private static AtomicInteger nextHashCode =
            new AtomicInteger();

    public static void main(String[] args) throws InterruptedException {

       //nextHashCode.set(3);
        for (int i = 0; i < 128; i++) {
            //只对2 n次方-1的数 均匀散列生效
            System.out.println(nextHashCode.getAndAdd(HASH_INCREMENT)&31);
        }


        //System.out.println(1&31);


    }
}
